From e76f41b788ef242eab8d63605969c878bcfd7139 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 23 Jun 2014 17:55:55 -0400 Subject: [PATCH] gtkmain: Rearrange code Prevent a segfault in unknown circumstances, and break the ignore deprecations wrapper out from the if statement so that we don't cover too much ground by accident. --- gtk/gtkmain.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 5a9353e3c0..77d25437e7 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1647,25 +1647,32 @@ gtk_main_do_event (GdkEvent *event) break; case GDK_EXPOSE: - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - if (event->any.window && gtk_widget_get_double_buffered (event_widget)) + if (event->any.window) { - /* We handle exposes only on native windows, relying on the - * draw() handler to propagate down to non-native windows. - * This is ok now that we child windows always are considered - * (semi)transparent. - */ - if (gdk_window_has_native (event->expose.window)) - { - gdk_window_begin_paint_region (event->any.window, event->expose.region); - gtk_widget_send_expose (event_widget, event); - gdk_window_end_paint (event->any.window); - } - } - else - G_GNUC_END_IGNORE_DEPRECATIONS - { - gtk_widget_send_expose (event_widget, event); + gboolean is_double_buffered; + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + is_double_buffered = gtk_widget_get_double_buffered (event_widget); + G_GNUC_END_IGNORE_DEPRECATIONS; + + if (is_double_buffered) + { + /* We handle exposes only on native windows, relying on the + * draw() handler to propagate down to non-native windows. + * This is ok now that we child windows always are considered + * (semi)transparent. + */ + if (gdk_window_has_native (event->expose.window)) + { + gdk_window_begin_paint_region (event->any.window, event->expose.region); + gtk_widget_send_expose (event_widget, event); + gdk_window_end_paint (event->any.window); + } + } + else + { + gtk_widget_send_expose (event_widget, event); + } } break; -- 2.30.2